iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
AI & Data

從Keras框架與數學概念了解機器學習系列 第 23

[從Keras框架與數學概念了解機器學習] - 23.呼應keras框架的深度學習

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230923/20144614hFjxiFJ5Q3.jpg

從 keras 框架運作一路看過來,機器在做學習會有個核心概念,這邊會展現出來讓前後關聯可以串通。

機器學習和很多著名的預測方法如貝氏理論、德爾菲法論等等,都有個非常非常相似的精神,即反覆執行 "修正" 的動作。之後會探討如貝氏理論的概念運作。

下圖為深度學習核心運作示意圖:
https://ithelp.ithome.com.tw/upload/images/20230923/20144614RrUdeeudHI.jpg

此為模型接收資料並迭代訓練示意圖。模型設定建構好後,將輸入資料載入模型內,模型做predict後會產生 yp 預測值,會透過與 yt 實際正確值做誤差計算與使用指定的損失函數,透過梯度下降法計算新的權重後,更新回模型中,再繼續以輸入資料重新預測、與實際正確值作誤差計算、透過損失函數更新模型權重。

重複訓練至設定的條件停止,或者參數判斷要於某個觀察點最大值或最小值,也就是最佳的模型狀態結束。

損失函數的選擇,其實就是在選擇適當的數學公式,這部分要實際試過,觀察其 loss value 有沒有降下來,降得越多,表示誤差越小越接近。

損失函數透過微分後可以觀察斜率,當斜率為0時,表示在此刻是一個低點,反之如果斜率在某時刻還是很大,也意味著其損失值還是非常大,需要繼續訓練讓斜率越來越小。 keras 可以透過 tensorflow.GradientTape 來達成梯度計算,可以查詢技術文件取得用法,這邊不繼續詳述。

https://ithelp.ithome.com.tw/upload/images/20230923/201446148M5KLfNSXY.png

上圖將藍色箭頭,當作是權重向量要更新的方向,最後更新到損失函數最低點就是最佳、誤差最小的地方。

另一層涵義是,找損失函數,要找會讓計算的值是往收斂的方向,如果怎麼計算都降不下來,數據會發散而不是朝向收斂,就要考慮更換損失函數,或者減少神經網路的層數等等。

假設權重為向量(keras內為張量),每次訓練都要往下降才能讓損失降為最小,所以每次都去減損失的值,這個損失值會乘上一個學習率,也就是在 optimizer with learning_rate 章節所提到的設定。下圖以2維權重向量示意:
https://ithelp.ithome.com.tw/upload/images/20230923/20144614eTtz3WOlLn.png

提到 keras 的 optimizer , 這邊會有一種狀況,就是會有 過擬合(overfitting) 與 欠擬合(underfitting) 的狀況。 也就是在權重向量降下來時,到了一個區域相對低點就停下來了,也就是下圖右上方斜率為0處,而真正的低點是左下方並未偵測到。

https://ithelp.ithome.com.tw/upload/images/20230923/201446142G63dLZgAC.png

所以需要最佳化搜尋,也就是 keras 的 optimizer 在設定使用哪一種最佳化模組來避免這些狀況發生。其損失函式也可能極度不規則,以下引用維基百科所提供的3D圖示:
https://ithelp.ithome.com.tw/upload/images/20230923/20144614GpznMbARyQ.png

透過模型在做 compiler時,指定適當的 optimizer 可以減少誤判的機會。


上一篇
[從Keras框架與數學概念了解機器學習] - 22. Model Container框架介面
下一篇
[從Keras框架與數學概念了解機器學習] - 24. 必學概念: Logistic Regression Classification
系列文
從Keras框架與數學概念了解機器學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言